package characters

// CharacterPersonality 角色性格定义
type CharacterPersonality struct {
	ID          string                 `json:"id"`          // 角色ID
	Name        string                 `json:"name"`        // 角色名称
	Description string                 `json:"description"` // 角色描述
	Emoji       string                 `json:"emoji"`       // 角色表情符号
	Greetings   []string               `json:"greetings"`   // 问候语列表
	Responses   map[string][]string    `json:"responses"`   // 响应模板
}

// ResponseType 响应类型常量
const (
	ResponseTypeHello  = "hello"  // 问候响应
	ResponseTypeThanks = "thanks" // 感谢响应
	ResponseTypeTired  = "tired"  // 疲劳响应
)

// CharacterManager 角色管理器接口
type CharacterManager interface {
	// RegisterCharacter 注册角色
	RegisterCharacter(character *CharacterPersonality) error
	
	// GetCharacter 获取角色
	GetCharacter(id string) (*CharacterPersonality, error)
	
	// GetAllCharacters 获取所有角色
	GetAllCharacters() []*CharacterPersonality
	
	// SetCurrentCharacter 设置当前角色
	SetCurrentCharacter(id string) error
	
	// GetCurrentCharacter 获取当前角色
	GetCurrentCharacter() *CharacterPersonality
	
	// GetGreeting 获取问候语
	GetGreeting() string
	
	// GetResponse 获取特定类型的响应
	GetResponse(responseType string) string
	
	// GetSpecificResponse 获取当前角色的特定类型响应
	GetSpecificResponse(responseType string) string
	
	// GeneratePersonalizedPrompt 生成个性化提示词
	GeneratePersonalizedPrompt(basePrompt string) string
}

// CharacterConfig 角色配置
type CharacterConfig struct {
	DefaultCharacterID string `json:"default_character_id"` // 默认角色ID
	EnablePersonality  bool   `json:"enable_personality"`   // 是否启用个性化
}